Integrated circuits operate in systems, which perform larger system functions. Some integrated circuits, referred to as application specific integrated circuits (ASICs), operate in only one type of system or application. The ASIC performs functions derived from the larger system functions of the application. An ASIC can include analog and digital circuits to perform the ASIC functions. The analog and digital circuits can be arranged as one or more independent functional blocks, a system-on-a-chip or a combination of independent functional blocks and a system-on-a-chip. Typically, a system-on-a-chip includes a core processor, memory, and peripheral logic blocks and storage elements.
Sometimes ASICs are used in different systems that perform similar functions. The different systems differ in a number of ways including system size and system performance characteristics, such as quality and speed. In addition, the systems can range in complexity from very simple single function systems to more complex multiple function systems. Usually, the larger, higher performance and more complex systems use more resources of the ASIC, as compared to the smaller, lower performance and simpler systems.
Different systems and functions in a multiple function system use ASIC resources differently. Using resources differently can result in one ASIC configuration performing fine in one system, yet not performing well in another system. Also, using resources differently can result in one ASIC configuration performing very well during one function of a multiple function system, but not performing well during another function of the multiple function system.
The ASIC can be configured for each system and function to offer a system with improved performance. To determine configuration settings for the ASIC, the performance of each system is analyzed with the ASIC installed and while each function is performed. Performance can be analyzed by observing system performance and internal operating parameters of the ASIC. In one process, an arbitrary ASIC configuration is set in the ASIC and system performance is measured. Educated guesses are used to change the ASIC configuration and system performance is measured again. This process continues until developers are satisfied with system performance for each system and function. To obtain ASIC internal operating parameters, the ASIC must be probed during operation, which can be a very difficult and time consuming task. Obtaining system performance data and ASIC operating parameter data, and configuring the ASIC for each and every system and function can be a difficult and time consuming task that rivals the design of the ASIC and increases the cost of the ASIC and system. The increased cost can make the ASIC and system cost prohibitive for the market.